#pragma once
#include <list>
#include "UIControl.h"
using namespace std;

class UIScreen : public UIControl
{
protected:
	list<UIControl* >	m_pControls;
	UIControl*			m_pFocusing;

public:
					UIScreen(UIControl* p_pParent = 0);
	virtual			~UIScreen();

	void			add(UIControl* p_pControl);
	void			remove(UIControl* p_pControl);

	virtual LRESULT	msgProc(HWND hWnd, UINT p_uMsg, WPARAM p_wParam, LPARAM p_lParam);
	virtual void	onMouseUp(MouseEvent* p_event);
	virtual void	onMouseDown(MouseEvent* p_event);
	virtual void	onMouseMove(MouseEvent* p_event);
	virtual void	onMouseEnter(MouseEvent* p_event);
	virtual void	onMouseOut(MouseEvent* p_event);

	virtual void	onKeyUp();
	virtual void	onKeyDown();	
	virtual void	onHotKey();

	virtual void	update(float p_fDt);
	virtual	void	draw();
	virtual void	drawControls();
	virtual void	onLostFocus();
	virtual LPSTR	getType();
};
